package com.chuangjiangx.member.stored.ddd.dal.mapper;

import com.chuangjiangx.member.stored.ddd.dal.dto.*;
import com.chuangjiangx.member.stored.ddd.dal.condition.*;
import org.apache.ibatis.session.RowBounds;

import java.math.BigDecimal;
import java.util.List;

/** 储值统计
 * @author 李孝延
 * @Date 2017/12/18 16:45
 **/
public interface RechargeRuleCountDalMapper {

    /**
     * 按照储值规则统计-图表
     */
    List<RechargeRuleCountChart> getRechargeRuleCountChart(RechargeRuleCountChartCondition condition);

    /**
     * 按照储值规则统计-列表
     */
    List<RechargeRuleCountList> getRechargeRuleCountListWithRowBounds(RechargeRuleCountListCondition condition, RowBounds rowBounds);

    /**
     * 按照来源统计-图表
     */
    List<RechargeRuleTerminalCountChart> getRechargeRuleTerminalCountChart(RechargeRuleTerminalCountChartCondition condition);

    /**
     * 按照来源统计-列表
     */
    List<RechargeRuleTerminalCountForList> getRechargeRuleTerminalCountForList(RechargeRuleTerminalCountForListCondition condition, RowBounds rowBounds);

    /**
     * 按储值规则详情
     */
    List<RechargeRuleCountDetailList> getRechargeRuleCountDetailList(RechargeRuleCountDetailListCondition condition, RowBounds rowBound);

    /**
     * 按来源 详情
     */
    List<RechargeRuleTerminalCountDetailList> getRechargeRuleTerminalCountDetailList(RechargeRuleTerminalCountDetailListCondition condition, RowBounds rn);

    BigDecimal getAvailableBalance(Long pid);
}
